home *** CD-ROM | disk | FTP | other *** search
/ Game.EXE 2001 January / Game.EXE_01_2001.iso / demos / Blade of Darkness / data1.cab / Program_Executable_Files / Lib / SaveGame.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2000-11-16  |  10.0 KB  |  322 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import MenuText
  5. import Bladex
  6. import netwidgets
  7. import MenuWidget
  8. import os
  9. import time
  10. import string
  11. import Reference
  12. EMPTY_SLOT = '<Empty Slot>'
  13. DATE_FORMAT = '%d/%m %H:%M'
  14. SaveCounter = []
  15. for i in range(2):
  16.     SaveCounter.append('Awesome!')
  17.  
  18. for i in range(3):
  19.     SaveCounter.append('Heroic')
  20.  
  21. for i in range(4):
  22.     SaveCounter.append('Bold')
  23.  
  24. for i in range(5):
  25.     SaveCounter.append('Normal')
  26.  
  27. for i in range(6):
  28.     SaveCounter.append('Cautious')
  29.  
  30. for i in range(7):
  31.     SaveCounter.append('Overcautious')
  32.  
  33. SaveCounter.append('Lame')
  34.  
  35. def ElUsuarioPresionaLaTeclaEscape(Salio):
  36.     return 1
  37.  
  38.  
  39. def LoadGameAux(name):
  40.     import Language
  41.     import SaveGameImage
  42.     path = '../../Save/%s_files' % (name,)
  43.     execfile = "execfile('../../Scripts/sys_init.py');execfile('../../Save/%s.py')" % (name,)
  44.     file_data_aux = open('%s/%saux' % (path, 'aux'), 'rt')
  45.     text = file_data_aux.read()
  46.     print text
  47.     file_data_aux.close()
  48.     scr_name = '../../Data/Menu/Save/' + Language.Current + '/Cerrando.jpg'
  49.     SaveGameImage.ShowImage(scr_name, 0)
  50.     Bladex.BeginLoadGame()
  51.     Bladex.CloseLevel(execfile, text)
  52.  
  53.  
  54. def LoadGameFromDisk(menu_class):
  55.     LoadGameAux('SaveGame' + menu_class.MenuDescr['Clave'])
  56.  
  57.  
  58. def SaveGameToDisk(menu_class):
  59.     global SaveGameString
  60.     import Menu
  61.     import Scorer
  62.     import MenuText
  63.     import GameText
  64.     Menu._MainMenu.DeActivateMenuItem()
  65.     Menu._MainMenu.DeActivateMenuItem()
  66.     Menu._MainMenu.DeActivateMenuItem()
  67.     Menu._MainMenu.DeActivateMenuItem()
  68.     file = open('../../Save/' + menu_class.MenuDescr['Clave'] + '.sv', 'w')
  69.     char = Bladex.GetEntity('Player1')
  70.     if char.Kind[0] == 'K':
  71.         cad = MenuText.GetMenuText('Knight')
  72.     
  73.     if char.Kind[0] == 'B':
  74.         cad = MenuText.GetMenuText('Barbarian')
  75.     
  76.     if char.Kind[0] == 'D':
  77.         cad = MenuText.GetMenuText('Dwarf')
  78.     
  79.     if char.Kind[0] == 'A':
  80.         cad = MenuText.GetMenuText('Amazon')
  81.     
  82.     cadtime = time.strftime(DATE_FORMAT, time.localtime(time.time()))
  83.     cad = `char.Level + 1` + ' Lv. ' + cad + ' ' + ' - ' + cadtime + ' - '
  84.     cad = cad + GameText.MapDescriptor(Bladex.GetCurrentMap())
  85.     Reference.TimesSaved = Reference.TimesSaved + 1
  86.     if Reference.TimesSaved >= len(SaveCounter):
  87.         DisgustingMessage = SaveCounter[len(SaveCounter) - 1]
  88.     else:
  89.         DisgustingMessage = SaveCounter[Reference.TimesSaved - 1]
  90.     cad = cad + ' - ' + `Reference.TimesSaved` + ' (' + MenuText.GetMenuText(DisgustingMessage) + ')'
  91.     file.write(cad)
  92.     file.close()
  93.     print cad
  94.     Scorer.SetVisible(0)
  95.     Bladex.SaveScreenShot('../../Save/' + menu_class.MenuDescr['Clave'] + '.BMP', 160, 120)
  96.     SaveGameString = "import GameState;state=GameState.WorldState();state.GetState();state.SaveState('../../Save/SaveGame" + menu_class.MenuDescr['Clave'] + ".py');state=None;"
  97.     Bladex.PauseSoundSystem()
  98.     Bladex.StopTime()
  99.     Bladex.SetRunString(SaveGameString + 'Scorer.SetVisible(1);Bladex.RestartTime();Bladex.ResumeSoundSystem()')
  100.  
  101.  
  102. def GetBack(menu_class):
  103.     import Menu
  104.     Menu._MainMenu.DeActivateMenuItem()
  105.  
  106. SaveBitmaps = (('1', '../../Save/1.BMP'), ('2', '../../Save/2.BMP'), ('3', '../../Save/3.BMP'), ('4', '../../Save/4.BMP'), ('5', '../../Save/5.BMP'), ('6', '../../Save/6.BMP'), ('7', '../../Save/7.BMP'), ('8', '../../Save/8.BMP'))
  107.  
  108. def GetSaveStatus():
  109.     if EmptyImage:
  110.         return '0'
  111.     elif FirstSaved:
  112.         return FirstSaved
  113.     else:
  114.         return '1'
  115.  
  116.  
  117. def FocusOnBitmap(menu_class = 0, parametro = 0):
  118.     netwidgets.ChangePlayer(menu_class.MenuDescr['Clave'])
  119.  
  120.  
  121. def CreateSaveMenu():
  122.     import Menu
  123.     import GameText
  124.     InspectSaveList()
  125.     if AllEmpty and not GameText.MapList.has_key(string.upper(Bladex.GetCurrentMap())):
  126.         
  127.         try:
  128.             Menu.GetMenuItem([
  129.                 'GAME',
  130.                 'LOAD GAME'])['Kind'] = MenuWidget.B_MenuItemTextNoFXNoFocus
  131.         except:
  132.             pass
  133.  
  134.         
  135.         try:
  136.             del Menu.GetMenuItem([
  137.                 'GAME',
  138.                 'LOAD GAME'])['ListDescr']
  139.         except:
  140.             pass
  141.  
  142.     else:
  143.         
  144.         try:
  145.             CreateMenu('LOAD GAME', 0)
  146.         except:
  147.             pass
  148.  
  149.         
  150.         try:
  151.             del Menu.GetMenuItem([
  152.                 'GAME',
  153.                 'LOAD GAME'])['Kind']
  154.         except:
  155.             pass
  156.  
  157.     if Bladex.GetEntity('Player1').Life <= 0 or not GameText.MapList.has_key(string.upper(Bladex.GetCurrentMap())):
  158.         
  159.         try:
  160.             Menu.GetMenuItem([
  161.                 'GAME',
  162.                 'SAVE GAME'])['Kind'] = MenuWidget.B_MenuItemTextNoFXNoFocus
  163.         except:
  164.             pass
  165.  
  166.     else:
  167.         
  168.         try:
  169.             del Menu.GetMenuItem([
  170.                 'GAME',
  171.                 'SAVE GAME'])['Kind']
  172.         except:
  173.             pass
  174.  
  175.         
  176.         try:
  177.             CreateMenu('SAVE GAME', 1)
  178.         except:
  179.             pass
  180.  
  181.  
  182.  
  183. def InspectSaveList():
  184.     global FirstSaved, AllEmpty, SaveBitmaps, AllEmpty, FirstSaved
  185.     FirstSaved = None
  186.     AllEmpty = 1
  187.     SaveBitmaps = []
  188.     path = '../../Save/'
  189.     ListDir = os.listdir(path)
  190.     for i in range(6):
  191.         cad = `i + 1` + '.BMP'
  192.         if cad in ListDir:
  193.             file = open(path + `i + 1` + '.sv', 'r')
  194.             name = file.readline()
  195.             file.close()
  196.             SaveBitmaps.append(`i + 1`, path + cad, name)
  197.             AllEmpty = 0
  198.             if not FirstSaved:
  199.                 FirstSaved = `i + 1`
  200.             
  201.         else:
  202.             SaveBitmaps.append(`i + 1`, '../../Data/Empty.BMP', EMPTY_SLOT)
  203.     
  204.     SaveBitmaps.append('0', '../../Data/Empty.BMP', EMPTY_SLOT)
  205.  
  206.  
  207. def RestartLevel(menu_class):
  208.     Bladex.LoadLevel(Bladex.GetCurrentMap())
  209.  
  210.  
  211. def MenuStart(EntityName):
  212.     import AuxFuncs
  213.     Bladex.GetEntity(EntityName).Freeze()
  214.     print EntityName, 'is  death'
  215.     AuxFuncs.FadeTo(1.0, 1.0)
  216.     Bladex.AddScheduledFunc(Bladex.GetTime() + 1.0, ActivaMenuDeRegreso, ())
  217.  
  218.  
  219. def ActivaMenuDeRegreso():
  220.     import Menu
  221.     if Bladex.GetEntity('Player1').Life <= 0:
  222.         Menu.GetMenuItem([
  223.             'BACK TO GAME'])['Kind'] = MenuWidget.B_MenuItemTextNoFXNoFocus
  224.         Menu.EscapeFunction = ElUsuarioPresionaLaTeclaEscape
  225.     
  226.     Menu.ActivateMenu()
  227.     Menu._MainMenu.ActivateMenuItem()
  228.     Menu._MainMenu.MenuNextItem()
  229.     Menu._MainMenu.ActivateMenuItem()
  230.  
  231.  
  232. def CreateMenu(MenuName, SaveFlag):
  233.     global EmptyImage
  234.     import Menu
  235.     import MenuText
  236.     import GameText
  237.     menuItem = Menu.GetMenuItem([
  238.         'GAME',
  239.         MenuName])
  240.     if menuItem == 1:
  241.         return None
  242.     
  243.     Save_Menu = []
  244.     if not SaveFlag:
  245.         pass
  246.     EmptyImage = GameText.MapList.has_key(string.upper(Bladex.GetCurrentMap()))
  247.     Save_Menu.append({
  248.         'Name': MenuText.GetMenuText(MenuName),
  249.         'VSep': 30,
  250.         'Font': Menu.MenuFontBig,
  251.         'Kind': MenuWidget.B_MenuItemTextNoFXNoFocus })
  252.     Save_Menu.append({
  253.         'Name': 'GameList',
  254.         'Kind': netwidgets.B_ImageListWidget,
  255.         'ImageList': SaveBitmaps,
  256.         'GetCharType': GetSaveStatus,
  257.         'VSep': 10 })
  258.     if EmptyImage:
  259.         Save_Menu.append({
  260.             'Name': MenuText.GetMenuText('Restart') + ' "' + GameText.MapDescriptor(Bladex.GetCurrentMap()) + '"',
  261.             'VSep': 10,
  262.             'Clave': '0',
  263.             'FocusCallBack': FocusOnBitmap,
  264.             'Font': Menu.MenuFontMed,
  265.             'Kind': MenuWidget.B_MenuItemTextNoFX,
  266.             'Command': RestartLevel })
  267.         menuItem['iFocus'] = 3
  268.     elif menuItem.has_key('iFocus'):
  269.         del menuItem['iFocus']
  270.     
  271.     for i in range(6):
  272.         SaveGameName = SaveBitmaps[i][2]
  273.         if SaveFlag:
  274.             val = {
  275.                 'Name': SaveGameName,
  276.                 'VSep': 10,
  277.                 'Font': Menu.MenuFontMed,
  278.                 'FocusCallBack': FocusOnBitmap,
  279.                 'Clave': `i + 1`,
  280.                 'iFocus': 2,
  281.                 'ListDescr': [
  282.                     {
  283.                         'Name': MenuText.GetMenuText('Overwrite a previous saved game?'),
  284.                         'VSep': 200,
  285.                         'Font': Menu.MenuFontBig,
  286.                         'Kind': MenuWidget.B_MenuItemTextNoFXNoFocus },
  287.                     {
  288.                         'Name': MenuText.GetMenuText('Yes'),
  289.                         'VSep': 20,
  290.                         'Command': SaveGameToDisk,
  291.                         'Font': Menu.MenuFontMed,
  292.                         'Clave': `i + 1` },
  293.                     {
  294.                         'Name': MenuText.GetMenuText('No'),
  295.                         'VSep': 10,
  296.                         'Font': Menu.MenuFontMed,
  297.                         'Command': GetBack },
  298.                     {
  299.                         'Name': 'Back',
  300.                         'Kind': MenuWidget.B_BackBlank }] }
  301.             Save_Menu.append(val)
  302.         else:
  303.             val = {
  304.                 'Name': SaveGameName,
  305.                 'VSep': 10,
  306.                 'Font': Menu.MenuFontMed,
  307.                 'Kind': MenuWidget.B_MenuItemTextNoFX,
  308.                 'Command': LoadGameFromDisk,
  309.                 'FocusCallBack': FocusOnBitmap,
  310.                 'Clave': `i + 1` }
  311.             if SaveGameName == EMPTY_SLOT:
  312.                 val['Kind'] = MenuWidget.B_MenuItemTextNoFXNoFocus
  313.             
  314.             Save_Menu.append(val)
  315.     
  316.     Save_Menu.append(Menu.BackOption)
  317.     Save_Menu.append({
  318.         'Name': 'Back',
  319.         'Kind': MenuWidget.B_BackBlank })
  320.     menuItem['ListDescr'] = Save_Menu
  321.  
  322.